package com.mydomain.Bodega;
// Generated 28/05/2012 10:45:58 PM by Hibernate Tools 3.2.2.GA

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;

/**
 * BienDetalle generated by hbm2java
 */
@Entity
@Table(name = "bien_detalle", schema = "public")
public class BienDetalle implements java.io.Serializable {

	private long bienCodigo;
	private BienCabecera bienCabecera;
	private Date bienFecha;
	private String codigoRegistroBienes;
	private Serializable descripcionBien;
	private BigDecimal bienValor;
	private Boolean bienCantidad;
	private Set<BienMovimiento> bienMovimientos = new HashSet<BienMovimiento>(0);

	public BienDetalle() {
	}

	public BienDetalle(long bienCodigo) {
		this.bienCodigo = bienCodigo;
	}
	public BienDetalle(long bienCodigo, BienCabecera bienCabecera,
			Date bienFecha, String codigoRegistroBienes,
			Serializable descripcionBien, BigDecimal bienValor,
			Boolean bienCantidad, Set<BienMovimiento> bienMovimientos) {
		this.bienCodigo = bienCodigo;
		this.bienCabecera = bienCabecera;
		this.bienFecha = bienFecha;
		this.codigoRegistroBienes = codigoRegistroBienes;
		this.descripcionBien = descripcionBien;
		this.bienValor = bienValor;
		this.bienCantidad = bienCantidad;
		this.bienMovimientos = bienMovimientos;
	}

	@Id
	@Column(name = "bien_codigo", unique = true, nullable = false, precision = 10, scale = 0)
	@NotNull
	public long getBienCodigo() {
		return this.bienCodigo;
	}

	public void setBienCodigo(long bienCodigo) {
		this.bienCodigo = bienCodigo;
	}
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "bien_codigoCabecera")
	public BienCabecera getBienCabecera() {
		return this.bienCabecera;
	}

	public void setBienCabecera(BienCabecera bienCabecera) {
		this.bienCabecera = bienCabecera;
	}
	@Temporal(TemporalType.DATE)
	@Column(name = "bien_fecha", length = 13)
	public Date getBienFecha() {
		return this.bienFecha;
	}

	public void setBienFecha(Date bienFecha) {
		this.bienFecha = bienFecha;
	}

	@Column(name = "codigo_registroBienes", length = 50)
	@Length(max = 50)
	public String getCodigoRegistroBienes() {
		return this.codigoRegistroBienes;
	}

	public void setCodigoRegistroBienes(String codigoRegistroBienes) {
		this.codigoRegistroBienes = codigoRegistroBienes;
	}

	@Column(name = "descripcion_bien")
	public Serializable getDescripcionBien() {
		return this.descripcionBien;
	}

	public void setDescripcionBien(Serializable descripcionBien) {
		this.descripcionBien = descripcionBien;
	}

	@Column(name = "bien_valor", precision = 5)
	public BigDecimal getBienValor() {
		return this.bienValor;
	}

	public void setBienValor(BigDecimal bienValor) {
		this.bienValor = bienValor;
	}

	@Column(name = "bien_cantidad", precision = 1, scale = 0)
	public Boolean getBienCantidad() {
		return this.bienCantidad;
	}

	public void setBienCantidad(Boolean bienCantidad) {
		this.bienCantidad = bienCantidad;
	}
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "bienDetalle")
	public Set<BienMovimiento> getBienMovimientos() {
		return this.bienMovimientos;
	}

	public void setBienMovimientos(Set<BienMovimiento> bienMovimientos) {
		this.bienMovimientos = bienMovimientos;
	}

}
